A popular and long-standing communication protocol is asynchronous character-by-character communication popularly referred to as "serial" or "RS-232." "RS-232" is technically the electrical interface, specifying the voltage levels and impedance requirements for serial communications. Although commonly used to describe serial communications, the RS-232 standard (EIA-232D) does not actually specify characters, framing, start bits, or stop bits. Serial communication, however, is well established according to these conventions. Each character, e.g., eight bit character or seven bit character with parity bit, arrives asynchronously. A character may arrive at any time, but the sequence of bits within a character must be spaced precisely in time to allow the receiving device to accurately sample the incoming signal. A start indicator, i.e., a start bit, and a terminal indicator, i.e., a stop bit, frame the character. The data arrives bit-by-bit on a single transmission conductor and the voltage state of the conductor, i.e., positive or negative voltage, determines the value of the corresponding bit. The transmission conductor state begins at an idle "one" value, i.e., a negative voltage, and goes to a "zero" value or a positive voltage when the start bit appears.
Thus, at the RS-232 interface level a "one" is represented by a negative voltage and a "zero" by a positive voltage. These voltages, however, are typically inverted to logic values, i.e., to a high voltage (5V) as a "one" value and a low voltage (0V) as a "zero" value when viewed by the UART. In the illustrations and discussion herein, this convention of high and low logic voltage referring to "one" and "zero" values, respectively, will be used to illustrate serial communication. The character frame is complete when the "one" value stop bit reappears at an appropriate time.
The receiving device must respond to the start bit and initiate a series of bit samples separated according to what is known as a baud rate. Typical baud rate values are 300, 1200, 2400, 4800, 9600, and 19200 baud. The baud rate refers to the frequency of bit presentation, for the transmitting device, and to the frequency of bit sampling, for the receiving device, both expressed in hertz (Hz). If the receiver operates at any baud rate other than the baud rate used by the transmitting device, the information collected is invalid.
Thus, essential to any serial communication is agreement in baud rate between the transmitting device and the receiving device. Serial communication between modems sometimes begins by negotiating the baud rate. Typically, one of the modems automatically detects the baud rate of the other device and matches this baud rate for subsequent serial communication. Except for modems, however, most serial devices do not include relatively expensive automatic baud rate detection circuitry and capability and do not negotiate or automatically detect baud rates. Rather, the baud rate must be set manually for such devices. This is a source of many installation problems and establishes significant need for relatively inexpensive automatic baud rate detection such as provided under the present invention. In many systems, one device sends a particular prearranged "sign on" character to facilitate automatic baud rate detection, e.g., sends the ASCII code for an "a" character.
FIG. 1 illustrates generally framed character serial communication according to conventional practice as described above. In particular, FIG. 1 portrays in bits 0-6 the ASCII code for the "A" character and in bit 7 the corresponding parity value. A start bit precedes bits 0-7 and a stop bit follows bits 0-7. The framed data sequence, i.e., the start bit, bits 0-7, and the stop bit, is preceded and followed by a "one" value idle interval whereby onset of a "zero" value indicates presentation of the start bit.
Dedicated circuitry often handles the details of serial communication. Such circuitry couples to the serial data conductor, and any other conductors used in support of serial communication, and collects or sends characters according to serial protocol. A separate controlling device, e.g., a processor, sets the baud rate of the dedicated circuitry and relies on the dedicated circuitry to sample the incoming signal in response to the start bit and at the appropriate baud rate. The dedicated circuitry, after collecting the character according to serial protocol, delivers the character to the processor. A common and well know type of dedicated serial communication device is a universal asynchronous receiver/transmitter (UART). In many cases, a UART is incorporated into an integrated processor device.
Automatic baud rate detection is a well known process and a variety of methods of automatic baud rate detection as well as a variety of devices supporting automatic baud rate detection are known. All such prior automatic baud rate detection methods and apparatus, however, are considered expensive in relation to that of the present invention. The subject matter of the present invention reduces the cost of automatic baud rate detection and thereby provides improvement in this subject matter.